#ifndef __ILSE_H__
#define __ILSE_H__

#include <iostream>
#include "Forest.h"
#include "Distance.h"

//intermediate left subforest enumeration
// F0,F1,....Fk
// ILse gets two trees, returns a Forset - array of pointers to trees (deleted vertex);

class  Ilse
{
	Forest* Frst; //array of pointers to trees (deleted vertex in reversed order);
	Tree* HeavyChild;//Heavy child of Fvp
	Distance* distance;

public:
	Ilse(Tree* Fvp, Distance* distance1);
	~Ilse() {Frst->~Forest();};
	void find_Ilse(Tree* Fvp, bool flag=true);
	Forest* get_Ilse() {return Frst;};
	Tree* get_Fk(int k);
};

#endif //__ILSE_H__